package com.toKnow.service;

import com.toKnow.model.dto.UserEditNormalDTO;
import com.toKnow.model.dto.UserInfoDTO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

public interface ProfileService {
    /**
     * 获取除id，userpwd以外的所有用户信息
     * 成功返回userInfoDTO，失败返回null
     */
    UserInfoDTO getUserInfo(String fieldName, String fieldValue);

    UserInfoDTO getAuthorInfo(Integer authorId);

    /**
     * 更新用户普通信息
     * 成功返回""，失败返回提示信息
     */
    String modifyUserNormal(HttpServletRequest request, Integer id, MultipartFile file, UserEditNormalDTO userEditNormalDTO);

    /**
     * 申请更新账户信息，发送带激活链接的邮件
     * 成功返回""，失败返回提示信息
     */
    String tryToModifyUserAccount(HttpServletRequest request, Integer id, String fieldName, String fieldValue);

    /**
     * 更新用户账户信息
     * 成功返回""，失败返回提示信息
     */
    String modifyUserAccount(String username, String activateCode, String fieldName, String fieldValue);

    /**
     * 修改密码
     */
    String modifyUserPassword(String username, String userpwd);
}
